#ifndef VISION_TRACKER_H
#define VISION_TRACKER_H

#include <ros/ros.h>
#include "sensor_msgs/CameraInfo.h"
#include "sensor_msgs/Image.h"
#include <Eigen/Dense>
#include "extract_lane.hpp"

class VisionTracker{
    public:
        VisionTracker(ros::NodeHandle& n);

    private:
        void camera_info_callback(const sensor_msgs::CameraInfoConstPtr& msg);

        void image_callback(const sensor_msgs::ImageConstPtr& msg);

        void publish_cloud(CloudPtr& cloudptr);
    private:
        ros::NodeHandle nh;
        ros::Subscriber camera_info_sub;
        ros::Subscriber image_sub;
        ros::Publisher image_pub;
        ros::Publisher lane_point_pub;

        Eigen::Matrix3d camera_matrix;
        bool set_camera_info;

        std::shared_ptr<ExtractLane> extract_lane_ptr_;
};






#endif